Multi-touch auto scanning

ABSTRACT

A system and method for autonomously scanning a sensor panel device is disclosed. A sensor panel processor can be disabled after a first predetermined amount of time has elapsed without the sensor panel device sensing any events. One or more system clocks can also be disabled to conserve power. While the processor and one or more system clocks are disabled, the sensor panel device can periodically autonomously scan the sensor panel for touch activity. If one or more results from the autonomous scans exceed a threshold, the sensor panel device re-enables the processor and one or more clocks to actively scan the sensor panel. If the threshold is not exceeded, the sensor panel device continues to periodically autonomously scan the sensor panel without intervention from the processor. The sensor panel device can periodically perform calibration functions to account for any drift that may be present in the system.

CROSS-REFERENCES TO RELATED APPLICATIONS

This application is a continuation of U.S. application Ser. No.15/176,008, filed Jun. 7, 2016 and published on Sep. 29, 2016 as U.S.Publication No. 2016/0283038, which is a continuation of U.S. patentapplication Ser. No. 14/455,604, filed Aug. 8, 2014, and issued on Jul.5, 2016 as U.S. Pat. No. 9,383,843, which is a continuation of U.S.application Ser. No. 13/340,153, filed Dec. 29, 2011 and issued on Sep.2, 2014 as U.S. Pat. No. 8,823,660, which is a divisional of applicationSer. No. 11/650,040, filed Jan. 3, 2007 and issued on Feb. 28, 2012 asU.S. Pat. No. 8,125,456, the contents of which are incorporated byreference herein in their entirety for all purposes.

FIELD OF THE INVENTION

This relates generally to electronic devices (e.g., touch screendevices) capable disabling various components (e.g., system clock andprocessor) during periods of inactivity, and, in particular, a systemand method that initiates a low power auto-scan mode during periods ofinactivity.

BACKGROUND OF THE INVENTION

Many types of input devices are presently available for performingoperations in a computing system, such as buttons or keys, mice,trackballs, touch panels, joysticks, touch screens and the like. Touchscreens, in particular, are becoming increasingly popular because oftheir ease and versatility of operation as well as their decliningprice. Touch screens may include a touch panel, which may be a clearpanel with a touch-sensitive surface. The touch panel may be positionedin front of a display screen so that the touch-sensitive surface coversthe viewable area of the display screen. Touch screens may allow a userto make selections and move a cursor by simply touching the displayscreen via a finger or stylus. In general, the touch screen mayrecognize the touch and position of the touch on the display screen, andthe computing system may interpret the touch and thereafter perform anaction based on the touch event.

One limitation of many conventional touch panel technologies is thatthey are only capable of reporting a single point or touch event, evenwhen multiple objects come into contact with the sensing surface. Thatis, they lack the ability to track multiple points of contact at thesame time. Thus, even when two points are touched, these conventionaldevices only identify a single location, which is typically the averagebetween the two contacts (e.g. a conventional touchpad on a notebookcomputer provides such functionality). This single-point identificationis a function of the way these devices provide a value representative ofthe touch point, which is generally by providing an average resistanceor capacitance value.

Moreover, a concern with many touch devices is the amount of power theyconsume when actively scanning a touch sensor panel. The high powerconsumption problem may be particularly important for hand-held devices,as a hand-held device's limited power supply can be readily consumed byactively scanning the touch sensor panel as well as processing thosescans. These scans can be wasteful if there is no touch-activity on thepanel for an extended period of time.

A possible remedy for a loss of power consumption during periods ofinactivity is to shut down (i.e. turn off) the touch panel or touchpanel device. But doing so can have several disadvantages, such asconsuming even more power when turning the touch panel back on(particularly if the period of inactivity is not an extended period oftime) and the inconvenience to the user for having to wait for the touchpanel to turn back on. Additionally, a user may forget to turn the touchpanel off, so the device continues to actively scan the touch paneldespite the user is not inputting any touch data.

SUMMARY OF THE INVENTION

A multi-touch touch system is disclosed herein. One aspect of themulti-touch touch system relates disabling components of a touch-paneldevice during periods of inactivity to conserve power. Components thatcan be disabled include a touch-panel processor and system clock.

Another aspect of the multi-touch system relates to having an auto-scanmode that periodically scans a touch panel for touch events, withoutintervention from a multi-touch processor. If predefined activity isdetected, then the multi-touch processor can be enabled to actively scanthe touch panel for touch events.

Another aspect of the multi-touch system relates to using a “sniff” modeto scan a touch panel for touch events after a predetermined amount oftime has transpired. The multi-touch system can also have a calibrationtimer that automatically enables a multi-touch processor and systemclocks to perform an active scan and calibration functions after adifferent predetermined amount of time has transpired.

Yet a further aspect of the multi-touch system relates to measuringstray capacitance in a touch panel sensor during an auto-scan mode.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates an exemplary computing system using a multi-touchpanel input device in accordance with one embodiment of the presentinvention.

FIG. 2a illustrates an exemplary capacitive multi-touch panel inaccordance with one embodiment of the present invention.

FIG. 2b is a side view of an exemplary capacitive touch sensor or pixelin a steady-state (no-touch) condition in accordance with one embodimentof the present invention.

FIG. 2c is a side view of the exemplary capacitive touch sensor or pixelin a dynamic (touch) condition in accordance with one embodiment of thepresent invention.

FIG. 3a illustrates an exemplary analog channel in accordance with oneembodiment of the present invention.

FIG. 3b is a more detailed illustration of a virtual ground chargeamplifier at the input of an analog channel, and the capacitancecontributed by a capacitive touch sensor and seen by the chargeamplifier in accordance with one embodiment of the present invention.

FIG. 3c illustrates an exemplary Vstim signal with multiple pulse trainseach having a fixed number of pulses, each pulse train having adifferent frequency Fstim in accordance with one embodiment of thepresent invention.

FIG. 4 is a block diagram illustrating auto-scan logic accordance withone embodiment of the invention.

FIG. 5 illustrates an auto-scan process implemented by the auto-scanlogic of FIG. 6 in accordance with one embodiment of the invention.

FIG. 6 illustrates a “sniff mode” power management profile in accordancewith one embodiment of the invention.

FIG. 7 illustrates an exemplary mobile telephone that may includemulti-touch panel, display device, and other computing system blocks inaccordance with one embodiment of the present invention.

FIG. 8 illustrates an exemplary digital audio/video player that mayinclude a multi-touch panel, a display device, and other computingsystem blocks in accordance with one embodiment of the presentinvention.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT

In the following description of preferred embodiments, reference is madeto the accompanying drawings which form a part hereof, and in which itis shown by way of illustration specific embodiments in which theinvention may be practiced. It is to be understood that otherembodiments may be used and structural changes may be made withoutdeparting from the scope of the preferred embodiments of the presentinvention.

A plurality of touch sensors in a multi-touch panel can enable acomputing system to sense multi-touch events (the touching of fingers orother objects upon a touch-sensitive surface at distinct locations atabout the same time) and perform additional functions not previouslyavailable with touch sensor devices

Although some embodiments may be described herein in terms of capacitivetouch sensors in a multi-touch panel, it should be understood thatembodiments of the invention are not so limited, but are generallyapplicable to the use of any type of multi-touch sensor technology thatmay include resistive touch sensors, surface acoustic wave touchsensors, electromagnetic touch sensors, near field imaging touchsensors, and the like. Furthermore, although the touch sensors in themulti-touch panel may be described herein in terms of an orthogonalarray of touch sensors having rows and columns, it should be understoodthat embodiments of the invention are not limited to orthogonal arrays,but may be generally applicable to touch sensors arranged in any numberof dimensions and orientations, including diagonal, concentric circle,and three-dimensional and random orientations.

In general, multi-touch panels may be able to detect multiple touches(touch events or contact points) that occur at or about the same time,and identify and track their locations. Examples of multi-touch panelsare described in Applicant's co-pending U.S. application Ser. No.10/842,862 entitled “Multipoint Touchscreen,” filed on May 6, 2004 andpublished as U.S. Published Application No. 2006/0097991 on May 11,2006, the contents of which are incorporated by reference herein.

FIG. 1 illustrates computing system 100 using touch sensors according toone embodiment. Computing system 100 may correspond to computing devicessuch as desktops, laptops, tablets or handhelds, including personaldigital assistants (PDAs), digital music and/or video players and mobiletelephones. Computing system 100 may also correspond to public computersystems such as information kiosks, automated teller machines (ATM),point of sale machines (POS), industrial machines, gaming machines,arcade machines, vending machines, airline e-ticket terminals,restaurant reservation terminals, customer service stations, libraryterminals, learning devices, and the like.

Computing system 100 may include one or more multi-touch panelprocessors 102 and peripherals 104, and multi-touch subsystem 106. Theone or more processors 102 can be ARM968 processors or other processorswith similar functionality and capabilities. However, in otherembodiments, the multi-touch panel processor functionality may beimplemented instead by dedicated logic such as a state machine.Peripherals 104 may include, but are not limited to, random accessmemory (RAM) or other types of memory or storage, watchdog timers andthe like. Multi-touch subsystem 106 may include, but is not limited to,one or more analog channels 108, channel scan logic 110 and driver logic114. Channel scan logic 110 may access RAM 112, autonomously read datafrom the analog channels and provide control for the analog channels.This control may include multiplexing columns of multi-touch panel 124to analog channels 108. In addition, channel scan logic 110 may controlthe driver logic and stimulation signals being selectively applied torows of multi-touch panel 124. In some embodiments, multi-touchsubsystem 106 may be integrated into a single application specificintegrated circuit (ASIC).

Driver logic 114 can provide multiple multi-touch subsystem outputs 116and can present a proprietary interface that drives high voltage driver,which is comprised of decoder 120 and subsequent level shifter anddriver stage 118, although level-shifting functions could be performedbefore decoder functions. Level shifter and driver 118 can provide levelshifting from a low voltage level (e.g. CMOS levels) to a higher voltagelevel, providing a better signal-to-noise (S/N) ratio for noisereduction purposes. Decoder 120 can decode the drive interface signalsto one out of N outputs, whereas N is the maximum number of rows in thepanel. Decoder 120 can be used to reduce the number of drive linesneeded between the high voltage driver and multi-touch panel 124. Eachmulti-touch panel row input 122 can drive one or more rows inmulti-touch panel 124. In some embodiments, driver 118 and decoder 120can be integrated into a single ASIC. However, in other embodimentsdriver 118 and decoder 120 can be integrated into driver logic 114, andin still other embodiments driver 118 and decoder 120 can be eliminatedentirely.

Multi-touch panel 124 can in some embodiments include a capacitivesensing medium having a plurality of row traces or driving lines and aplurality of column traces or sensing lines, although other sensingmedia may also be used. The row and column traces may be formed from atransparent conductive medium, such as Indium Tin Oxide (ITO) orAntimony Tin Oxide (ATO), although other transparent and non-transparentmaterials, such as copper, can also be used. In some embodiments, therow and column traces can be formed on opposite sides of a dielectricmaterial, and can be perpendicular to each other, although in otherembodiments other non-orthogonal orientations are possible. For example,in a polar coordinate system, the sensing lines can be concentriccircles and the driving lines can be radially extending lines (or viceversa). It should be understood, therefore, that the terms “row” and“column,” “first dimension” and “second dimension,” or “first axis” and“second axis” as used herein are intended to encompass not onlyorthogonal grids, but the intersecting traces of other geometricconfigurations having first and second dimensions (e.g. the concentricand radial lines of a polar-coordinate arrangement). It should also benoted that in other embodiments, the rows and columns can be formed on asingle side of a substrate, or can be formed on two separate substratesseparated by a dielectric material. In some embodiments, the dielectricmaterial can be transparent, such as glass, or can be formed from othermaterials, such as mylar. An additional dielectric cover layer may beplaced over the row or column traces to strengthen the structure andprotect the entire assembly from damage.

At the “intersections” of the traces, where the traces pass above andbelow each other (but do not make direct electrical contact with eachother), the traces essentially form two electrodes (although more thantwo traces could intersect as well). Each intersection of row and columntraces can represent a capacitive sensing node and can be viewed aspicture element (pixel) 126, which can be particularly useful whenmulti-touch panel 124 is viewed as capturing an “image” of touch. (Inother words, after multi-touch subsystem 106 has determined whether atouch event has been detected at each touch sensor in the multi-touchpanel, the pattern of touch sensors in the multi-touch panel at which atouch event occurred can be viewed as an “image” of touch (e.g. apattern of fingers touching the panel).) The capacitance between row andcolumn electrodes appears as a stray capacitance on all columns when thegiven row is held at DC and as a mutual capacitance Csig when the givenrow is stimulated with an AC signal. The presence of a finger or otherobject near or on the multi-touch panel can be detected by measuringchanges to Csig. The columns of multi-touch panel 124 can drive one ormore analog channels 108 (also referred to herein as event detection anddemodulation circuits) in multi-touch subsystem 106. In someembodiments, each column is coupled to one dedicated analog channel 108.However, in other embodiments, the columns may be couplable via ananalog switch to a fewer number of analog channels 108.

Computing system 100 can also include host processor 128 for receivingoutputs from multi-touch panel processor 102 and performing actionsbased on the outputs that may include, but are not limited to, moving anobject such as a cursor or pointer, scrolling or panning, adjustingcontrol settings, opening a file or document, viewing a menu, making aselection, executing instructions, operating a peripheral deviceconnected to the host device, answering a telephone call, placing atelephone call, terminating a telephone call, changing the volume oraudio settings, storing information related to telephone communicationssuch as addresses, frequently dialed numbers, received calls, missedcalls, logging onto a computer or a computer network, permittingauthorized individuals access to restricted areas of the computer orcomputer network, loading a user profile associated with a user'spreferred arrangement of the computer desktop, permitting access to webcontent, launching a particular program, encrypting or decoding amessage, and/or the like. Host processor 128 may also perform additionalfunctions that may not be related to multi-touch panel processing, andcan be coupled to program storage 132 and display device 130 such as anLCD display for providing a user interface (UI) to a user of the device.

FIG. 2a illustrates exemplary capacitive multi-touch panel 200. FIG. 2aindicates the presence of a stray capacitance Cstray at each pixel 202located at the intersection of a row 204 and a column 206 trace(although Cstray for only one column is illustrated in FIG. 2 forpurposes of simplifying the figure). Note that although FIG. 2aillustrates rows 204 and columns 206 as being substantiallyperpendicular, they need not be so aligned, as described above. In theexample of FIG. 2a , AC stimulus Vstim 214 is being applied to one row,with all other rows connected to DC. The stimulus causes a charge to beinjected into the column electrodes through mutual capacitance at theintersecting points. This charge is Qsig=Csig×Vstm. Each of columns 206may be selectively connectable to one or more analog channels (seeanalog channels 108 in FIG. 1).

FIG. 2b is a side view of exemplary pixel 202 in a steady-state(no-touch) condition. In FIG. 2b , an electric field of electric fieldlines 208 of the mutual capacitance between column 206 and row 204traces or electrodes separated by dielectric 210 represents a signalcapacitance Csig between the row and column electrodes and can cease acharge to be injected form a stimulated row to a column electrode. SinceCsig is referenced to virtual ground, it also makes up a straycapacitance. For example, a total stray capacitance of a columnelectrode can be the sum of all signal capacitances Csig between a givencolumn and all row electrodes. Assuming that CSig is for example 0.75 pFand a column electrode is intersected by fifteen row electrodes, thetotal stray capacitance on that column electrode would be at least15×0.75 pF=11.25 pF. In reality, however, the total stray capacitance islikely larger due to a trace stray capacitance of the column electrodeto the multi-touch ASIC or other stray capacitances in the system.

FIG. 2c is a side view of exemplary pixel 202 in a dynamic (touch)condition. In FIG. 2c , finger 212 has been placed near pixel 202.Finger 212 is a low-impedance object at signal frequencies, andrepresents an CA ground return path to via body capacitance Cbody. Thebody has a self-capacitance to ground Cbody, which is a function of,among other things, body size and geometry. If finger 212 blocks someelectric field lines 208 between the row and column electrodes (thosefringing fields that exit the dielectric and pass through the air abovethe row electrode), those electric field lines are shunted to groundthrough the capacitance path inherent in the finger and the body, and asa result, the steady state signal capacitance Csig is reduced byCsig_sense. In other words, the combined body and finger capacitance actto reduce Csig by an amount ΔCsig (which can also be referred to hereinas Csig_sense), and can act as a shunt or dynamic return path to ground,blocking some of the electric fields as resulting in a reduced netsignal capacitance. The signal capacitance at the pixel becomesCsig−ΔCsig, where Csig represents the static (no touch) component andΔCsig represents the dynamic (touch) component. Note that Csig−ΔCsig mayalways be nonzero due to the inability of a finger, palm or other objectto block all electric fields, especially those electric fields thatremain entirely within the dielectric material. In addition, it shouldbe understood that as a finger is pushed harder or more completely ontothe multi-touch panel, the finger can tend to flatten, blocking more andmore of the electric fields, and thus ΔCsig can be variable andrepresentative of how completely the finger is pushing down on the panel(i.e. a range from “no-touch” to “full-touch”).

Referring again to FIG. 2a , as mentioned above, Vstim signal 214 can beapplied to a row in multi-touch panel 200 so that a change in signalcapacitance can be detected when a finger, palm or other object ispresent. Vstim signal 214 can include one or more pulse trains 216 at aparticular frequency, with each pulse train including of a number ofpulses. Although pulse trains 216 are shown as square waves, otherwaveshapes such as sine waves can also be employed. A plurality of pulsetrains 216 at different frequencies can be transmitted for noisereduction purposes to minimize the effect of any noise sources. Vstimsignal 214 essentially injects a charge into the row via signalcapacitance Csig, and can be applied to one row of multi-touch panel 200at a time while all other rows are held at a DC level. However, in otherembodiments, the multi-touch panel may be divided into two or moresections, with Vstim signal 214 being simultaneously applied to one rowin each section and all other rows in that region section held at a DCvoltage.

Each analog channel coupled to a column can provide a resultrepresenting a mutual capacitance between a row being stimulated and acolumn the row is connected to. Specifically, this mutual capacitance iscomprised of the signal capacitance Csig and any change Csig_sense inthat signal capacitance due to the presence of a finger, palm or otherbody part or object. These column values provided by the analog channelsmay be provided in parallel while a single row is being stimulated, ormay be provided in series. If all of the values representing the signalcapacitances for the columns have been obtained, another row inmulti-touch panel 200 can be stimulated with all others held at a DCvoltage, and the column signal capacitance measurements can be repeated.Eventually, if Vstim has been applied to all rows, and the signalcapacitance values for all columns in all rows have been captured (i.e.the entire multi-touch panel 200 has been “scanned”), a “snapshot” ofall pixel values can be obtained for the entire multi-touch panel 200.This snapshot data can be initially saved in the multi-touch subsystem,and later transferred out for interpretation by other devices in thecomputing system such as the host processor. As multiple snapshots areobtained, saved and interpreted by the computing system, it is possiblefor multiple touches to be detected, tracked, and used to perform otherfunctions.

FIG. 3a illustrates exemplary analog channel or event detection anddemodulation circuit 300. One or more analog channels 300 can be presentin the multi-touch subsystem. One or more columns from a multi-touchpanel can be connectable to each analog channel 300. Each analog channel300 can include virtual-ground charge amplifier 302, signal mixer 304,offset compensation 306, rectifier 332, subtractor 334, andanalog-to-digital converter (ADC) 308. FIG. 3a also shows, in dashedlines, the steady-state signal capacitance Csig that can be contributedby a multi-touch panel column connected to analog channel 300 when aninput stimulus Vstim is applied to a row in the multi-touch panel and nofinger, palm or other object is present, and the dynamic signalcapacitance Csig−ΔCsig that can appear when a finger, palm or otherobject is present.

Vstim, as applied to a row in the multi-touch panel, can be generated asa burst of square waves or other non-DC signaling in an otherwise DCsignal, although in some embodiments the square waves representing Vstimcan be preceded and followed by other non-DC signaling. If Vstim isapplied to a row and a signal capacitance is present at a columnconnected to analog channel 300, the output of charge amplifier 302 canbe pulse train 310 centered at Vref with a peak-to-peak (p-p) amplitudein the steady-state condition that is a fraction of the p-p amplitude ofVstim, the fraction corresponding to the gain of charge amplifier 302,which is equivalent to the ratio of signal capacitance Csig andpreamplifier feedback capacitance Cfb. For example, if Vstim includes18V p-p pulses and the gain of the charge amplifier is 0.1, then theoutput of the charge amplifier can be 1.8V p-p pulses. This output canbe mixed in signal mixer 304 with demodulation waveform Fstim 316.

Since the stimulation signal can be a square wave, it may beadvantageous to use a sinusoidal demodulation waveform to remove theharmonics of the square wave. In order to reduce the stop band ripple ofthe mixer at a given stimulation frequency, it can be advantageous touse a Gaussian shaped sinewave. The demodulation waveform can have thesame frequency as the stimulus Vstim and can be synthesised from aLookuptable, enabling generation of any shape of demodulation waveform.Besides Gaussian shaped sinewaves, other waveshapes may be programmed totune the filter characteristics of the mixers. In some embodiments,Fstim 316 may be tunable in frequency and amplitude by selectingdifferent digital waveforms in the LUT 312 or generating the waveformsdifferently using other digital logic. Signal mixer 304 may demodulatethe output of charge amplifier 302 by subtracting Fstim 316 from theoutput to provide better noise rejection. Signal mixer 304 may rejectall frequencies outside the passband, which may in one example be about+/−30 kHz around Fstim. This noise rejection may be beneficial in noisyenvironment with many sources of noise, such as 802.11, Bluetooth andthe like, all having some characteristic frequency that may interferewith the sensitive (femt-farad level) analog channel 300. Since thefrequency of the signals going into the signal mixer can have the samefrequency, the signal mixer may be thought of as a synchronousrectifier, such that the output of the signal mixer is essentially arectified waveform.

Offset compensation 306 can then be applied to signal mixer output 314,which can remove the effect of the static Csig, leaving only the effectof ΔCsig appearing as result 324. Offset compensation 306 can beimplemented using offset mixer 330. Offset compensation output 322 canbe generated by rectifying Fstim 316 using rectifier 332, and mixingrectifier output 336 with analog voltage from a digital-to-analogconverter (DAC) 320 in offset mixer 330. DAC 320 can generate the analogvoltage based on a digital value selected to increase the dynamic rangeof analog channel 300. Offset compensation output 322, which can beproportional to the analog voltage from DAC 320, can then be subtractedfrom signal mixer output 314 using subtractor 334, producing subtractoroutput 338 which can be representative of the change in the signalcapacitance ΔCsig that occurs when a capacitive sensor on the row beingstimulated has been touched. Subtractor output 338 is then integratedand can then be converted to a digital value by ADC 308. In someembodiments, integrator and ADC functions are combined and ADC 308 maybe an integrating ADC, such as a sigma-delta ADC, which can sum a numberof consecutive digital values and average them to generate result 324.

FIG. 3b is a more detailed view of charge amplifier (a virtual groundamplifier) 302 at the input of an analog channel, and the capacitancethat can be contributed by the multi-touch panel (see dashed lines) andseen by the charge amplifier. As mentioned above, there can be aninherent stray capacitance Cstray at each pixel on the multi-touchpanel. In virtual ground amplifier 302, with the + (noninverting) inputtied to Vref, the − (inverting) input is also driven to Vref, and a DCoperating point is established. Therefore, regardless of how much Csigis present, the − input is always driven to Vref. Because of thecharacteristics of virtual ground amplifier 302, any charge Qstray thatis stored in Cstray is constant, because the voltage across Cstray iskept constant by the charge amplifier. Therefore, no matter how muchstray capacitance Cstray is added to the − input, the net charge intoCstray will always be zero. Accordingly, the input chargeQsig_sense=(Csig−ΔCsig_sense)Vstim is zero when the corresponding row iskept at DC and is purely a function of Csig and Vstim when thecorresponding row is stimulated. In either case, because there is nocharge across Csig, the stray capacitance is rejected, and itessentially drops out of any equations. Thus, even with a hand over themulti-touch panel, although Cstray can increase, the output will beunaffected by the change in Cstray.

The gain of virtual ground amplifier 302 is usually small (e.g. 0.1) andis equivalent to the ratio of Csig (e.g. 2 pF) and feedback capacitorCfb (e.g. 20 pF). The adjustable feedback capacitor Cfb converts thecharge Qsig to the voltage Vout. Therefore, the output Vout of virtualground amplifier 302 is a voltage that is equivalent to the ratio of−Csig/Cfb multiplied by Vstim referenced to Vref. The high voltage Vstimpulses can therefore appear at the output of virtual ground amplifier302 as much smaller pulses having an amplitude identified by referencecharacter 326. However, when a finger is present, the amplitude of theoutput can be reduced as identified by reference character 328, becausethe signal capacitance is reduced by ΔCsig.

For noise rejection purposes, it may be desirable to drive themulti-touch panel at multiple different frequencies. Because noisetypically exists at a particular frequency (e.g., most wireless devicessend bursts at a particular frequency), changing the scanning patternmay reduce the system's susceptibility to noise. Accordingly, in someembodiments, channels (e.g., rows) of the multi-touch panel may bestimulated with a plurality of pulse train bursts. For frequencyrejection purposes, the frequency of the pulse trains may vary from oneto the other.

FIG. 3c illustrates an exemplary stimulation signal Vstim with multiplepulse trains 330 a, 330 b, 330 c, each of which have a fixed number ofpulses, but have a different frequency Fstim (e.g. 140 kHz, 200 kHz, and260 kHz). With multiple pulse trains at different frequencies, adifferent result may be obtained at each frequency. Thus, if a staticinterference is present at a particular frequency, the results of asignal at that frequency may be corrupted as compared to the resultsobtained from signals having other frequencies. The corrupted result orresults can be eliminated and the remaining results used to compute afinal result or, alternatively, all of the results may be used.

In one embodiment, system 100 includes auto-scan logic. Auto-scan logicmay reside in channel scan logic block 110 of multi-touch subsystem 106,separately from channel scan logic 110 in multi-touch subsystem 106, orentirely separate from multi-touch subsystem 106.

In general, auto-scan logic can autonomously read data from analogchannels 108 and provide control of analog channels 108. This isreferred to as “auto-scan mode.” Accordingly, auto-scan mode enables thesystem 100 to scan multi-touch panel 124 without intervention frommulti-touch processor 102 and while one or more system clocks aredisabled. This allows multi-touch system 100 to conserve power or freeup components (such as processor 102) to perform other tasks while thesystem is in auto-scan mode.

For example, because a user may not be continuously inputting data intotouch panel 124, it may be desirable to initiate auto-scan mode after apredetermined amount of time has transpired without the system 100sensing any touch-events. By doing so, the system 100 can conserve powerwhile no data is being inputted (because auto-scan mode is enabled), butpower back up once the user resumes inputting data.

FIG. 4 is a block diagram of one embodiment of auto-scan logic 400. Asshown, auto-scan logic 400 can include auto-scan control 402, which cancontrol row address and channel timing functions, among other things. Inone embodiment, auto-scan control 402 can include a row address statemachine and a channel timing state machine for controlling scanningmulti-touch panel 124. As can be appreciated by one skilled in the art,the various functions and components of auto-scan control 402 can beshared with or overlap with channel scan logic 110 and driver logic 114.

Referring further to FIG. 4, sniff timer 404 and calibration timer 406can be clocked by oscillator 408. Oscillator can be a low frequencyoscillator or high frequency oscillator; however, for power conservationreasons, a low frequency oscillator may be desirable. Low frequencyoscillator can reside in the multi-touch subsystem 106, or can resideoutside of multi-touch subsystem 106.

After a predetermined amount of time (referred to as “sniff time”),sniff timer 404 initiates scan sequence. Note that autoscan mode can becomprised to two individual system states: an actual sniff intervalduring which only a low frequency oscillator and a sniff time is active,and a scan sequence in which a multi-touch panel is actively scanned.The two system states may form the auto-scan mode.

In one embodiment, high frequency oscillator 421 wakes upinstantaneously. The faster the high frequency oscillator wakes up theless time the system spends actively scanning the panel. Further detailsconcerning a high frequency oscillator are described in Applicant'sconcurrently filed U.S. application Ser. No. 11/649,966 entitled“Automatic Frequency Calibration,” the contents of which are hereinincorporated by reference in their entirety. In one embodiment, highfrequency oscillator 421 is a fast startup oscillator that allows fastlock after the system wakes up from a lower power management state toscan the multi-touch panel. To reduce the time between wake-up, scanningthe multi-touch panel and going back into a lower power state, it may beadvantageous for the oscillating signal to become stable in a relativelyshort period in order to minimize the time the system is active and thusto conserve power. Many crystal oscillators may take severalmilliseconds to stabilize. However, a fast start-up oscillator circuitcan stabilize within tens of microseconds, thus enabling the system togo back into a lower power management state much faster than, forexample, a system that is driven by a slower stabilizing crystaloscillator.

In general, an auto-scan process can be enabled by first enablingauto-scan control 402 and then putting the processor into a wait forinterrupt state. Clock manager 414 then shuts down high frequencyoscillator 421 and initiates the sniff timer 404, which after a snifftimeout, causes clock manager 414 to enable high frequency oscillator421 and then sends a request to the channel scan logic 110 to perform ascan, but keeping the processor inactive. Channel scan logic 110 thenacquires a multi-touch image on pixel locations that can be specifiedthrough programming appropriate registers. Multi-touch image resultsfrom analog channels 430 (which may be analog channel 300 of FIG. 3A)may be subtracted in subtractor 417 by a baseline image stored inbaseline RAM 419. The subtracted result can then be compared to athreshold value by comparator 410. If the resulting value is above theprogrammable threshold value, an interrupt is set and the processor iswoken up. If the resulting value is below the threshold value, then thesystem remains in autoscan mode until either a calibration time expiresor an external interrupt occurs.

Accordingly, an auto-scan mode permits multi-touch data input to be readfrom multi-touch panel 124 while the processor is inactive. In oneembodiment, sniff timer 404 is reset each time sniff timer initiates anauto-scan sequence. The sniff time can be in the range of 8 millisecondsto 2 seconds, for example 50 milliseconds.

Calibration timer 406 can wake up processor 102 when auto-scan logic 400stays in auto-scan mode for an extended amount of time without any touchevents detected on touch panel 124 exceeding a threshold, as discussedin more detail below. In one embodiment, the calibration timer 406initiates a “calibration” upon expiration of a predetermined amount oftime (“calibration time”). A “calibration” can include waking up thehigh frequency oscillator and activating the system clock and processor102 to perform a scan of the multi-touch panel 124. The calibration canalso include calibration functions, such as accounting for any drift inthe sensor panel 124. In one embodiment, the calibration time is greaterthan the sniff time and can be in the range of 2 seconds to 300 seconds.

With further reference to FIG. 4, comparator 410 compares offsetcompensated results with a threshold value as described above. In oneembodiment, if the threshold value is exceeded, then one or more touchevents detected on the panel 124 have occurred that take the system 100out of auto-scan mode and into active scan mode. The comparison of thethreshold value with the compensated results can be done on achannel-by-channel, row-by-row basis. In one embodiment, the thresholdvalue can be programmed into a threshold value register.

OR gate 412 can be included between the output paths of calibrationtimer 406 and comparator 410. Accordingly, when either the calibrationtime of calibration timer 406 or the threshold value of comparator 410is exceeded, OR gate can initiate sending an interrupt signal toprocessor 102 and clock manger 414 for the purpose of re-enablingprocessor 102 and clocks.

Clock manager 414 can control one or more clocks in system 100. Ingeneral, when any clocks are not needed at a given time, clock manager414 can disable those clocks so as to conserve power, and when anydisabled clocks are needed, clock manager 414 can enable those clocks.In one embodiment, clock manager 414 can control low frequencyoscillator 408, the high frequency oscillator (not shown) and the systemclock (not shown) clocking processor 102.

Power management timer 416 can be included in auto-scan logic 400. Powermanagement timer 416 counts up to a time equal to the sniff time less adelay time. The delay time can be the amount of time needed for themulti-touch system 100 to get ready to perform a scan, “settle” highvoltage drivers 118 (i.e. to provide a stable supply of voltage) priorto performing a scan. The delay time can be adjusted via a power managerregister, and can be different for each channel 108 that is scanned.

In order to prevent false wakeups due to environmental noise, noisemanagement block 424 can be included. False wakeups can cause aprocessor to exit the wait for interrupt state and actively scan thepanel. Moreover, repetitive false triggers can cause the overall powerconsumption of a system to increase substantially. Noise managementblock 424 can advantageously discern whether a threshold value wasexceeded due to, for example, a finger touching the panel or due tonoise corrupting one of the scan frequencies.

In one embodiment auto-scan logic 400 may scan at more than onefrequency and transfer the resulting data to noise management block 424.Noise calculation block 427 can calculate the noise levels based on ahistory of result data acquired for different scan frequencies and usesnoise level RAM 425 to keep a history of noise levels and associatedfrequencies. Control and decision logic 428 can compare ADC resultsacquired for one row scan at different frequencies. If, for example, ifADC result data for the scan frequencies track each other within acertain window, then it is likely that a touch condition caused thethreshold to be exceeded as a touch condition, as a touch would affectthe result values for all of the scan frequencies. However, if resultdata for a particular frequency are corrupted, then the result data atan individual scan frequency will probably not track the other scanfrequencies, thereby indicating that excessive noise caused thethreshold to be exceeded instead of a touch condition. In the lattercase, the control and decision logic 428 could generate a holdoff signal435 to prevent the comparator 410 from generating a processor interrupt.If a noisy frequency channel is detected, that frequency can be removedfrom the frequency hopping table 426 and IO block 429. The frequencyhopping table 426 may contain data representing clean frequency channelsand may be programmed during factory calibration. Upon completion of ascan, IO block 429 can send a new set of scan frequency data to channeltiming logic 110. The frequency data can determine the scan frequenciesfor the next channel timing sequence. Periodically changing the scanfrequencies based on the noise environment make the auto-scan logic 400more robust, which can ultimately aid in the reduction of power.

In order to reach a low power state, charge amplifiers (such as chargeamplifier 302) in each analog channel 430 can be configured to operatein stray capacitance mode. In one embodiment, channel scan logic 110 caninitiate a stray capacitance mode by sending a stray capacitance modeinitiate signal to analog channels 430. Initiating stray capacitancemeasurements of a multi-touch panel device is discussed in furtherdetail in Applicant's co-pending U.S. patent application Ser. No.11/650,511 entitled “Analog Boundary Scanning Based on StrayCapacitance,” the entire contents of which are herein incorporated byreference.

However, in one embodiment, using the stray capacitance mode does notprovide an accurate location of where a touch event occurred on thepanel 124, as the stray capacitance mode provides only an indicationthat one or more touch events occurred on or near one of the columnsbeing scanned. On the other hand, using the stray capacitance mode canbe advantageous because only one scan is needed to determine if a touchevent occurred on the multi-touch panel 124; as opposed to a pluralityof scans that may be needed using the mutual capacitance mode.Accordingly, using fewer scans can significantly reduce the amount ofpower consumed to scan the panel 124. For example, in oneimplementation, it was found that a scan using the stray capacitancemode uses about the same amount of power as the amount of powerdissipated due to the leakage current present in a multi-touch system.

An exemplary auto-scan process 500 in accordance with one embodiment isillustrated in the flowchart of FIG. 5. One skilled in the art willappreciate that various timing and memory storage issues are omittedfrom this flowchart for the sake of clarity.

The auto-scan process 500 begins with system 100 in active scan mode inblock 502. Here, processor 102 is enabled and system 100 is activelyscanning the multi-touch panel 124. While still in active scan mode,process 500 determines whether sufficient touch events have taken placeon the touch panel within a predetermined amount of time (e.g., in therange of 1 ms to a number of minutes) in block 504. This decision can beperformed by, for example, processor 102. Alternatively, a separateprocessor or dedicated logic, such as channel scan logic 110, canperform this task. If it is found that there has been sufficient touchactivity, then process 500 returns to block 502 and the system 100remains in active scan mode. If, on the other hand, it is determinedthat there has not been a sufficient touch activity, then auto-scan modeis enabled in block 506.

In one embodiment, auto-scan mode can be enabled by processor 102sending an auto-scan enable signal to auto-scan control 402. In anotherembodiment, auto-scan mode can be enabled by having processor 102 set anauto-scan enable bit in an auto-scan register, which is monitored byauto-scan control 402. Further variations of enabling auto-scan mode mayalso be used, as is appreciated by one skilled in the art.

When the auto-scan mode is enabled, the processor 102 is disabled (e.g.,put in an idle mode) in block 508, the system clock is turned off (block510), and the high frequency oscillator is turned off (block 510).Blocks 508, 510 and 512 serve to conserve power when multi-touch panel124 is not in use. In the embodiment shown in FIG. 4, auto-scan logic400 can disable one or more of these components via clock manager 414.

Further to FIG. 5, sniff timer 404 is activated and reset (block 514) aswell as calibration timer 406 (block 516). The activation and resettingfunctions can be initiated by auto-scan control 402. Process 500 thenproceeds to decision block 518 to determine whether an interrupt signalhas been received, such as a signal from comparator 410 indicating thata threshold has been exceeded. If an interrupt has been received, thenany clocks that were turned off during auto-scan mode are turned on andthe processor 102 is enabled (block 520). Process 500 then returns toactive scanning mode in block 502.

If no interrupt is detected, then process 500 determines if sniff timer604 exceeded the sniff time (block 522). If the sniff time is notexceeded, then process 500 returns to block 518. If the sniff time isexceeded, then process 500 determines if calibration timer 406 exceededthe calibration time (block 520). If the calibration time is exceeded,then the clocks and processor are enabled (block 514) and active scanmode is enabled (block 502).

If the calibration time is not exceeded, then the high frequencyoscillator is woken up (i.e., enabled) in block 526 and an image of themulti-touch panel 124 is acquired (block 528). Various implementationscan be used to acquire an image in block 524, which are discussed inmore detail further below.

In one embodiment, the image acquired in block 524 is done whileprocessor 102 is disabled. Once an image has been acquired in block 528,process 500 determines if a programmable threshold is exceeded (block530). This can be done by comparing offset compensated results 324received from ADC 308 (FIG. 3a ) with the threshold value. If thethreshold is exceeded, then the clocks and processor 102 are enabled(block 514) and the process 500 returns to active scan mode (block 502).If the threshold is not exceeded, then process 500 returns to the block512 (turning off the high frequency clock).

Further to block 524, various implementations may be used to acquire amulti-touch image. For example, an image may be acquired measuringeither a mutual capacitance or a stray capacitance.

When measuring mutual capacitance (which may be referred to as “mutualcapacitance mode”), system 100 detects changes in capacitance at eachnode of the multi-touch panel, as described above with reference toFIGS. 3b and 3c . Accordingly, to acquire an image of multi-touch panel124 using the mutual capacitance mode, each row is typically scanned. Inalternative embodiments, only select rows are scanned to conserveenergy. For example, scanning every other row, or scanning rows locatedon a certain area of multi-touch panel 124, such as a top, bottom ormiddle area of the multi-touch panel. In further embodiments, selectframes of multi-touch panel 124 are scanned using mutual capacitancemode.

Alternatively, measuring stray capacitance can be used (which may bereferred to as “stray capacitance mode”) instead of or in combinationwith the mutual capacitance mode. Measuring stray capacitance in amulti-touch panel device is discussed in further detail in Applicant'sco-pending U.S. patent application Ser. No. 11/650,511 entitled “AnalogBoundary Scanning Based on Stray Capacitance,” the entire contents ofwhich are herein incorporated by reference. Advantageously, the straycapacitance mode can measure the output of all columns of themulti-touch panel 124 in one scan.

FIG. 6 is a power management profile 600 of an auto-scan cycle inaccordance with one embodiment of the invention. One complete auto-scancycle can be, for example, 50 ms. During sniff mode, very little poweris used, as only low frequency clock 408, sniff timer 404 andcalibration timer 406 are active. After the sniff time is exceeded, anauto-scan is performed, which is shown as a period of scan activity inFIG. 6. During this time, multi-touch panel 124 is scanned withoutintervention from processor 102. Thus, low frequency clock 404, highfrequency clock, auto-scan control 402 and other components neededperform an auto-scan are powered. This results in more power consumptionthan occurs during the sniff time, but less than if processor 102 andother clocks were active (e.g., during active scan mode).

Further to FIG. 6, if mutual capacitance mode is used, then one or morerows of multi-touch panel 124 may be scanned. In one implementation, 48rows are scanned, each row scan taking about 0.1 ms to perform.Accordingly, it takes a total of about 4.8 ms to scan every row. Ifstray capacitance mode is used, then only one scan needs to beperformed. This scan takes about 0.1 ms to perform. Thus, using straycapacitance mode can be faster (0.1 ms as opposed to 4.8 ms in thisexample) and can also use less power (about 2% of the power used in themutual capacitance mode described in this example).

Because the stray capacitance mode may not be able to determine anaccurate location of where multi-touch panel 124 was touched, a hybridmode can used in one embodiment. The hybrid mode can include initiallyusing the stray capacitance mode to detect a touch event on themulti-touch panel 124 and, if a touch event is detected, then using themutual capacitance mode to provide an accurate location of where thetouch event occurred.

Furthermore, in one embodiment of system 100, the touch event can berequired to happen in a predetermined manner in order to exceed thethreshold. For example, the system may require simultaneous or nearlysimultaneous touch events to occur in particular locations or in aparticular manner (e.g., a simulated dial turning motion). If thethreshold is not exceeded, then the auto-scan mode can continue asdescribed in process 500 (e.g., return to block 512).

In one embodiment, auto-scan mode scans at a single frequency band. Thismay conserve power. Alternatively, auto-scan mode can scan at multipledifferent frequencies as described with reference to FIG. 3 c.

In one embodiment auto-scan logic includes a noise management block. Thenoise management block prevents waking up the processor in cases wherethreshold levels are exceeded due to presence of noise not because ofthe user not touching the multi-touch screen. By remaining in auto-scanmode, power is saved. The noise management block can take a survey ofnoise levels for several channels. If one channel has excessive Csigreadings then it is likely an interferer on that channel. If thereadings of all channels are the same then it is likely a user touchingthe panel. Dependent on the noise levels the noise management blockprovides a frequency-hopping table back to the channel scan logic withfrequencies on clean channels. The noise management clock also includesa calibration engine to recalibrate the internal high frequencyoscillator to prevent oscillator drift into a noisy channel.

FIG. 7 illustrates an exemplary mobile (e.g., cellular) telephone 736that can include multi-touch panel 724, display device 730, and othercomputing system blocks in the computing system 100 of FIG. 1. In theexample of FIG. 7a , if a user's cheek or ear is detected by one or moremulti-touch panel sensors, computing system 100 may determine thatmobile telephone 736 is being held up to the user's head, and thereforesome or all of multi-touch subsystem 106 and multi-touch panel 724 canbe powered down along with display device 730 to save power.

FIG. 8 illustrates an exemplary digital audio/video player that caninclude multi-touch panel 824, display device 830, and other computingsystem blocks in the computing system 100 of FIG. 1.

While this invention has been described in terms of several preferredembodiments, there are alterations, permutations, and equivalents, whichfall within the scope of this invention. For example, the term“computer” does not necessarily mean any particular kind of device,combination of hardware and/or software, nor should it be consideredrestricted to either a multi purpose or single purpose device.Additionally, although the embodiments herein have been described inrelation to touch screens, the teachings of the present invention areequally applicable to touch pads or any other touch surface type ofsensor.

For example, although embodiments of this invention are primarilydescribed herein for use with touch sensor panels, proximity sensorpanels, which sense “hover” events or conditions, may also be used togenerate modulated output signals for detection by the analog channels.Proximity sensor panels are described in Applicants' co-pending U.S.application Ser. No. 11/649,998 entitled “Proximity and Multi-TouchSensor Detection and Demodulation,” filed on Jan. 3, 2007 the entiretyof which is incorporated herein by reference. As used herein, “touch”events or conditions should be construed to encompass “hover” events andconditions and may collectively be referred to as “events.” Also, “touchsurface panels” should be construed to encompass “proximity sensorpanels.”

Furthermore, although the disclosure is primarily directed at capacitivesensing, it should be noted that some or all of the features describedherein may be applied to other sensing methodologies. It should also benoted that there are many alternative ways of implementing the methodsand apparatuses of the present invention. It is therefore intended thatthe following appended claims be interpreted as including all suchalterations, permutations, and equivalents as fall within the truespirit and scope of the present invention.

What is claimed is:
 1. Auto-scan logic for performing clock managementat a sensor panel, the auto-scan logic comprising: auto-scan controllogic configured for enabling an auto-scan mode when no proximate objectis detected at the sensor panel for a first period of time; and clockmanager logic communicatively coupled to the auto-scan control logic andconfigured for when the auto-scan mode is enabled and a sniff time isnot exceeded and a calibration time is not exceeded, disabling one ormore clocks and processors, when the auto-scan mode is enabled and thesniff time is exceeded but the calibration time is not exceeded,enabling one or more of the clocks and initiating an auto-scan of thesensor panel, and when the auto-scan mode is enabled and the sniff timeis exceeded and the calibration time is exceeded, enabling the one ormore clocks and processors and initiating a first active scan of thesensor panel.
 2. The auto-scan logic of claim 1, wherein when aproximate object is detected during the auto-scan, the auto-scan controllogic is further configured for enabling the one or more clocks andprocessors and initiating a second active scan of the sensor panel. 3.The auto-scan logic of claim 1, further comprising: a sniff timercommunicatively coupled to the auto-scan control logic and configuredfor indicating that the sniff time is exceeded.
 4. The auto-scan logicof claim 3, the auto-scan control further configured for resetting thesniff timer each time the auto-scan is initiated.
 5. The auto-scan logicof claim 1, further comprising: a calibration timer communicativelycoupled to the auto-scan control logic and configured for indicatingthat the calibration time is exceeded.
 6. The auto-scan logic of claim1, wherein the one or more processors being disabled and enabledincludes a panel processor.
 7. The auto-scan logic of claim 1, the clockmanager logic further configured for, when the auto-scan mode is enabledand the sniff time is not exceeded and the calibration time is notexceeded, enabling only a low frequency oscillator from among the one ormore clocks, the low frequency oscillator configured for clocking asniff timer and a calibration timer.
 8. The auto-scan logic of claim 1,the clock manager logic further configured for, when the auto-scan modeis enabled and the sniff time is not exceeded and the calibration timeis not exceeded, disabling a high frequency oscillator from among theone or more clocks, and disabling a system clock.
 9. The auto-scan logicof claim 1, the clock manager logic further configured for, when theauto-scan mode is enabled and the sniff time is exceeded and thecalibration time is exceeded, enabling a high frequency oscillator fromamong the one or more clocks, the high frequency oscillator configuredfor enabling a fast lock after being enabled.
 10. A method of clockmanagement for a sensor panel, comprising: entering an auto-scan mode bydisabling one or more clocks and processors when no proximate object isdetected at the sensor panel for a first period of time; and while thesensor panel is in the auto-scan mode, when a sniff time is exceeded anda calibration time is not exceeded, enabling one or more of the clocksand performing an auto-scan of the sensor panel, and when the sniff timeis exceeded and the calibration time is exceeded, enabling the one ormore clocks and processors and performing an active scan of the sensorpanel.
 11. The method of claim 10, further comprising: when a proximateobject is detected during the auto-scan, enabling the one or more clocksand processors and initiating a second active scan of the sensor panel.12. The method of claim 10, wherein the one or more processors beingdisabled and enabled includes a panel processor.
 13. The method of claim10, further comprising: when the auto-scan mode is enabled and the snifftime is not exceeded and the calibration time is not exceeded, enablingonly a low frequency oscillator from among the one or more clocks, thelow frequency oscillator configured for clocking a sniff timer and acalibration timer.
 14. The method of claim 10, further comprising: whenthe auto-scan mode is enabled and the sniff time is not exceeded and thecalibration time is not exceeded, disabling a high frequency oscillatorfrom among the one or more clocks, and disabling a system clock.
 15. Themethod of claim 10, further comprising: when the auto-scan mode isenabled and the sniff time is exceeded and the calibration time isexceeded, enabling a high frequency oscillator from among the one ormore clocks, the high frequency oscillator configured for enabling afast lock after being enabled.
 16. The method of claim 10, furthercomprising resetting the sniff time each time the auto-scan mode isentered.
 17. Auto-scan logic for performing clock management at a sensorpanel, comprising: means for entering an auto-scan mode by disabling oneor more clocks and processors when no proximate object is detected atthe sensor panel for a first period of time; and while the sensor panelis in the auto-scan mode, means for, when a sniff time is exceeded and acalibration time is not exceeded, enabling one or more of the clocks andperforming an auto-scan of the sensor panel, and means for, when thesniff time is exceeded and the calibration time is exceeded, enablingthe one or more clocks and processors and performing an active scan ofthe sensor panel.
 18. The auto-scan logic of claim 17, furthercomprising: means for, when a proximate object is detected during theauto-scan, enabling the one or more clocks and processors and initiatinga second active scan of the sensor panel.
 19. The auto-scan logic ofclaim 17, further comprising: means for, when the auto-scan mode isenabled and the sniff time is not exceeded and the calibration time isnot exceeded, enabling only a low frequency oscillator from among theone or more clocks, the low frequency oscillator configured for clockinga sniff timer and a calibration timer.
 20. The auto-scan logic of claim17, further comprising: means for, when the auto-scan mode is enabledand the sniff time is not exceeded and the calibration time is notexceeded, disabling a high frequency oscillator from among the one ormore clocks, and disabling a system clock.